#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>
#include<assert.h>
// void swap(int arr3[], const int sz)
//{
//	assert(arr3 != NULL);
//	int i = 0;
//	int j = 0;
//	int k = 0;
//	int arr1[9] = { 0 };
//	int arr2[9] = { 0 };
//	for (i = 0; i < sz; i++)
//	{
//		if (arr3[i] % 2 == 0)
//		{
//			arr2[j] = arr3[i];
//			j++;
//		}
//		else
//		{
//			arr1[k] = arr3[i];
//			k++;
//		}
//	}
//	i = 0;
//	while (arr1[i] != 0)
//	{
//		arr3[i] = arr1[i];
//		i++;
//	}
//	j = 0;
//	while (arr2[j] != 0)
//	{
//		arr3[i] = arr2[j];
//		j++;
//		i++;
//	}
//}
//int main()
//{
//	int arr[9] = { 1,2,3,4,5,6,7,8,9 };
//	int arr1[9] = { 0 };
//	int arr2[9] = { 0 };
//	int j = 0;
//	int sz = sizeof(arr) / sizeof(arr[0]);
//    swap(arr, sz);
//	for (j = 0; j < sz; j++)
//		{
//			printf("%d ", arr[j]);
//		}
//	return 0;
//}

//void my_strcpy(const char arr[],char str[])
//{
//	assert(arr&&str);
//	int i = 0;
//	for (i = 0; i < 10; i++)
//	{
//		if (arr[i] == '/0')
//		{
//			break;
//		}
//		str[i] = arr[i];
//	}
//}
//int main()
//{
//	char arr[10] = { "hallo" };
//	char str[10] = { 0 };
//	my_strcpy(arr,str);
//	printf("%s", str);
//	return 0;
//}


//int my_strlen(char arr[], int sz)
//{
//	int i = 0;
//	int count = 0;
//	for (i = 0; i < sz; i++)
//	{
//		if (arr[i] == '\0')
//		{
//			break;
//		}
//		count++;
//     }	
//	return count;
//}
//int main()
//{
//	char arr[10] = {"hallo"};
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	int ret = my_strlen(arr, sz);
//	printf("%d ", ret);
//	return 0;
//}


//int my_judge(int arr[], int n)
//{
//    int i = 0;
//    int j = 0;
//    for (i = 0; i < n; i++)
//    {
//        for (j = i+1; j <= n-1; j++)
//        {
//            if (arr[i] > arr[j])
//            {
//                return 0;
//                break;
//            }
//            if (j == n && arr[i] <= arr[j])
//            {
//                return 1;
//                break;
//            }
//        }
//    }
//    return 1;
//}
//int main()
//{
//    int n = 0;
//    int arr[50] = { 0 };
//    int i = 0;
//    scanf("%d", &n);
//    for (i = 0; i < n; i++)
//    {
//        scanf("%d", &arr[i]);
//    }
//    int ret = my_judge(arr, n);
//    if (ret == 1)
//    {
//        printf("sorted");
//    }
//    else
//    {
//        printf("unsorted");
//    }
//    return 0;
//}

int main()
{
	int n = 0;
	int i = 0;
	int arr[10000] = { 0 };
	scanf("%d", &n);
	for (i = 0; i < n; i++)
	{
		scanf("%d", &arr[i]);
	}
	int max = arr[0];
	for (i = 0; i < n; i++)
	{
		if (arr[i] > max)
		{
			max = arr[i];
		}
	}
	int min = arr[0];
	for (i = 0; i < n; i++)
	{
		if (arr[i] < min)
		{
			min = arr[i];
		}
	}
	printf("%d\n", max - min);
	return 0;
}